home *** CD-ROM | disk | FTP | other *** search
/ Software of the Month Club 2000 October / Software of the Month - Ultimate Collection Shareware 277.iso / pc / PROGRAMS / UTILITY / WINLINUX / DATA1.CAB / programs_-_include / LINUX / PARPORT_.{A5 < prev    next >
Text File  |  1999-09-17  |  4KB  |  140 lines

  1. #ifndef __LINUX_PARPORT_PC_H
  2. #define __LINUX_PARPORT_PC_H
  3.  
  4. #include <asm/io.h>
  5.  
  6. /* --- register definitions ------------------------------- */
  7.  
  8. #define ECONTROL 0x402
  9. #define CONFIGB  0x401
  10. #define CONFIGA  0x400
  11. #define EPPDATA  0x4
  12. #define EPPADDR  0x3
  13. #define CONTROL  0x2
  14. #define STATUS   0x1
  15. #define DATA     0
  16.  
  17. extern int parport_pc_epp_clear_timeout(struct parport *pb);
  18.  
  19.  
  20. extern __inline__ void parport_pc_write_epp(struct parport *p, unsigned char d)
  21. {
  22.     outb(d, p->base+EPPDATA);
  23. }
  24.  
  25. extern __inline__ unsigned char parport_pc_read_epp(struct parport *p)
  26. {
  27.     return inb(p->base+EPPDATA);
  28. }
  29.  
  30. extern __inline__ void parport_pc_write_epp_addr(struct parport *p, unsigned char d)
  31. {
  32.     outb(d, p->base+EPPADDR);
  33. }
  34.  
  35. extern __inline__ unsigned char parport_pc_read_epp_addr(struct parport *p)
  36. {
  37.     return inb(p->base+EPPADDR);
  38. }
  39.  
  40. extern __inline__ int parport_pc_check_epp_timeout(struct parport *p)
  41. {
  42.     if (!(inb(p->base+STATUS) & 1))
  43.         return 0;
  44.     parport_pc_epp_clear_timeout(p);
  45.     return 1;
  46. }
  47.  
  48. extern __inline__ unsigned char parport_pc_read_configb(struct parport *p)
  49. {
  50.     return inb(p->base+CONFIGB);
  51. }
  52.  
  53. extern __inline__ void parport_pc_write_data(struct parport *p, unsigned char d)
  54. {
  55.     outb(d, p->base+DATA);
  56. }
  57.  
  58. extern __inline__ unsigned char parport_pc_read_data(struct parport *p)
  59. {
  60.     return inb(p->base+DATA);
  61. }
  62.  
  63. extern __inline__ void parport_pc_write_control(struct parport *p, unsigned char d)
  64. {
  65.     outb(d, p->base+CONTROL);
  66. }
  67.  
  68. extern __inline__ unsigned char parport_pc_read_control(struct parport *p)
  69. {
  70.     return inb(p->base+CONTROL);
  71. }
  72.  
  73. extern __inline__ unsigned char parport_pc_frob_control(struct parport *p, unsigned char mask,  unsigned char val)
  74. {
  75.     unsigned char old = inb(p->base+CONTROL);
  76.     outb(((old & ~mask) ^ val), p->base+CONTROL);
  77.     return old;
  78. }
  79.  
  80. extern __inline__ void parport_pc_write_status(struct parport *p, unsigned char d)
  81. {
  82.     outb(d, p->base+STATUS);
  83. }
  84.  
  85. extern __inline__ unsigned char parport_pc_read_status(struct parport *p)
  86. {
  87.     return inb(p->base+STATUS);
  88. }
  89.  
  90. extern __inline__ void parport_pc_write_econtrol(struct parport *p, unsigned char d)
  91. {
  92.     outb(d, p->base+ECONTROL);
  93. }
  94.  
  95. extern __inline__ unsigned char parport_pc_read_econtrol(struct parport *p)
  96. {
  97.     return inb(p->base+ECONTROL);
  98. }
  99.  
  100. extern __inline__ unsigned char parport_pc_frob_econtrol(struct parport *p, unsigned char mask,  unsigned char val)
  101. {
  102.     unsigned char old = inb(p->base+ECONTROL);
  103.     outb(((old & ~mask) ^ val), p->base+ECONTROL);
  104.     return old;
  105. }
  106.  
  107. extern void parport_pc_change_mode(struct parport *p, int m);
  108.  
  109. extern void parport_pc_write_fifo(struct parport *p, unsigned char v);
  110.  
  111. extern unsigned char parport_pc_read_fifo(struct parport *p);
  112.  
  113. extern void parport_pc_disable_irq(struct parport *p);
  114.  
  115. extern void parport_pc_enable_irq(struct parport *p);
  116.  
  117. extern void parport_pc_release_resources(struct parport *p);
  118.  
  119. extern int parport_pc_claim_resources(struct parport *p);
  120.  
  121. extern void parport_pc_init_state(struct parport_state *s);
  122.  
  123. extern void parport_pc_save_state(struct parport *p, struct parport_state *s);
  124.  
  125. extern void parport_pc_restore_state(struct parport *p, struct parport_state *s);
  126.  
  127. extern size_t parport_pc_epp_read_block(struct parport *p, void *buf, size_t length);
  128.  
  129. extern size_t parport_pc_epp_write_block(struct parport *p, void *buf, size_t length);
  130.  
  131. extern int parport_pc_ecp_read_block(struct parport *p, void *buf, size_t length, void (*fn)(struct parport *, void *, size_t), void *handle);
  132.  
  133. extern int parport_pc_ecp_write_block(struct parport *p, void *buf, size_t length, void (*fn)(struct parport *, void *, size_t), void *handle);
  134.  
  135. extern void parport_pc_inc_use_count(void);
  136.  
  137. extern void parport_pc_dec_use_count(void);
  138.  
  139. #endif
  140.